package com.yuexunit.application.service;

import com.yuexunit.application.action.v1.model.UpdateInfo;
import com.yuexunit.application.entity.ApplicationEntity;
import com.yuexunit.application.entity.ApplicationVersionEntity;
import com.yuexunit.application.entity.PlatformEnum;


/**
 * @author wangjinshui
 */
public interface ApplicationService {
	/**
	 * 创建应用
	 * @param name 应用名称
	 * @param type 应用分类
	 * @param platform 设备类型
	 * @param director 应用负责人
	 * @param description 应用描述 
	 * @return 应用ID
	 */
	public Long createApplication(String name, String type, PlatformEnum platform, String director, String description);
	
	
	/**
	 * 根据ID查询应用 
	 * @param appId 应用ID
	 * @return 应用信息
	 */
	public ApplicationEntity inquireApplication(Long appId);
	
	
	/**
	 * 根据KEY查询应用
	 * @param appKey 应用代码
	 * @return 应用信息
	 */
	public ApplicationEntity inquireApplication(String appKey);
	
	
	/**
	 * 创建应用版本
	 * @param appVersion 应用版本信息
	 * @return 应用版本ID
	 */
	public Long createApplicationVersion(ApplicationVersionEntity appVersion);
	
	
	/**
	 * 查询应用的更新信息
	 * @param appKey 应用代码
	 * @param appVersion 应用版本
	 * @return 更新信息
	 */
	public UpdateInfo checkForUpdate(String appKey, String appVersion);
}
